package JianZhiOffer;

import java.util.LinkedList;

public class CQueue {

    LinkedList<Integer> A, B;

    public CQueue() {
        A = new LinkedList<>();
        B = new LinkedList<>();
    }

    /**
     * 插入尾部
     *
     * @param value
     */
    public void appendTail(int value) {
        A.addLast(value);
    }

    public int deleteHead() {
        //当栈 B 不为空： B中仍有已完成倒序的元素，因此直接返回 B 的栈顶元素。
        //否则，当 A 为空： 即两个栈都为空，无元素，因此返回 -1−1 。
        //否则： 将栈 A 元素全部转移至栈 B 中，实现元素倒序，并返回栈 B 的栈顶元素。
        if (!B.isEmpty()) {
            return B.removeLast();
        }
        if (A.isEmpty()) {
            return -1;
        }

        while (!A.isEmpty()) {
            B.addLast(A.removeLast());
        }
        return B.removeLast();
    }
}
